// 基础请求URL
const baseURL = wx.getStorageSync('serverUrl') || 'http://192.168.56.1:9007'

// 请求方法封装
const request = (options) => {
  return new Promise((resolve, reject) => {
    // 获取token
    const token = wx.getStorageSync('token')
    
    wx.request({
      url: baseURL + options.url,
      method: options.method || 'GET',
      data: options.data,
      header: {
        'Content-Type': 'application/json',
        'Authorization': token // 请求头带上token
      },
      success: (res) => {
        if(res.statusCode === 200) {
          resolve(res.data)
        } else if(res.statusCode === 401) {
          // token失效,跳转登录页
          wx.removeStorageSync('token')
          wx.removeStorageSync('userInfo')
          wx.redirectTo({
            url: '/pages/login/login'
          })
          reject('登录已过期')
        } else {
          reject(res.data.msg || '请求失败')
        }
      },
      fail: (err) => {
        console.error('请求失败:', err)
        wx.showToast({
          title: err.errMsg || '网络错误',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

// 封装具体请求方法
const http = {
  get: (url, data) => {
    return request({
      url,
      method: 'GET',
      data
    })
  },
  
  post: (url, data) => {
    return request({
      url,
      method: 'POST', 
      data
    })
  }
}

module.exports = http 